机场选购与测评

代理订阅服务的选型、验证与风险控制 —— 写给"日常办公 + 全球多国线路"需求的人

适用画像:macOS / iPhone / Windows 三端 · 预算 30–100 元/月 · 不玩游戏但要稳定 · 需要多国落地

0. 一页结论

三句话讲完:
  1. 不存在"最好最稳的机场"。机场的平均生命周期以年计,跑路和降级是常态。你要买的不是"一家好机场",而是一套不会因单点失效而断网的组合。
  2. 所有榜单都不可信。测评站的收入来自返利,"排名第一"和"优惠码"是一体两面。榜单只能用来收集候选名字,判断必须自己做。
  3. 价格是最强的筛查指标。专线的带宽是刚性成本(1Gbps 国际入口月租 1.5–3.5 万元),¥7–8/月 卖"IPLC 全专线"在成本上不成立。算不通的价格,后面一定是超售或跑路。

给你的配置建议(日常办公 + 全球多国)

层角色预算选型要点
主力日常办公、AI 工具、多国访问30–60 元/月IEPL 或优质中转;港/日/新 + 美/欧;必须月付;真实 IP 去重后 ≥15 个(20+ 更佳)
备用主力挂了立刻顶上5–20 元(按量)按量计费不过期;不同运营主体;不追求速度只要能通
解锁 / AIChatGPT、Claude、流媒体含在主力内,或 +10–20 元官网逐项标注解锁国家;原生 IP;有独立"AI 节点"
兜底敏感时期、全线失效0–10 元/月自建 VPS + VLESS-Reality,或长期可用的免费源

合计约 50–100 元/月,其中主力不超过 60 元。任何"年付 ¥99 不限量"的选项直接跳过,不在讨论范围内。

1. 机场是什么

"机场"是中文圈对代理订阅服务商的俗称。它不卖软件,卖的是一条订阅链接:客户端定时拉取这条链接,得到一份节点列表(服务器地址、端口、协议、密码/密钥)和一套分流规则。换机场 = 换一条订阅链接,客户端不用重装。

它和另外两个概念必须分清:

形态你买到什么优点代价
机场订阅链接(几十到几百个节点)开箱即用、多国覆盖、有专线、有客服跑路风险、隐私暴露给运营方、共享带宽
自建一台境外 VPS + 自己装的协议完全可控、IP 独享、无跑路自己运维、单 IP 被封就全断、需要技术
商业 VPN一个 App 账号合规性较好、易用协议特征明显、国内基本不可用、无专线
PlantUML diagram
图 1-1 用例图:机场选购与使用的行为全景(整体行为)

专有名词

机场(Airport)
代理订阅服务商的俗称。名字来源于"飞机场"——节点叫"线路/航班",换节点叫"换航班"。
订阅(Subscription)
一条带 token 的 URL,返回节点列表与规则。它等价于你的账号凭证,泄露即被盗用流量。
节点(Node)
一条可连接的代理入口,由 server + port + 协议 + 密钥 组成。注意:节点数 ≠ 线路数,同一台机器的多个端口会被包装成多个"节点"。
落地(Exit / 落地 IP)
流量最终访问目标网站时使用的出口 IP。你看到"香港节点",指的是落地在香港。
入口(Entry)
你的流量最先到达的那一跳。直连的入口就是境外机器;中转的入口是一台境内机器。
倍率
计费系数。标称 100GB、常用节点倍率 2x,实际只能用 50GB。真实流量 = 标称 ÷ 倍率。
订阅转换(subconverter)
把一种订阅格式转成另一种(如 V2Ray → Clash)。第三方在线转换站能看到你的全部节点密钥,尽量本地转换。

2. 一次请求的完整链路

看懂这张图,90% 的营销话术就失效了。你的每一次点击,走的是这样一条路径:

PlantUML diagram
图 2-1 时序图:一次请求从客户端到落地(核心主流程)

三个关键节点决定了体验:

  1. 第 4 跳(客户端 → 入口):这一段走公网出境,是 GFW 主要识别和干扰的位置。协议抗不抗封锁,看这里。
  2. 第 5–6 跳(入口 → 落地):这一段是"中转"还是"专线"。专线走运营商内网,不经过公网国际出口,晚高峰不跟别人抢带宽——这就是专线溢价的全部来源。
  3. 第 7 跳(落地 → 目标站):这一跳的 IP 决定了流媒体解锁、AI 服务可用性、账号风控。线路再好,落地 IP 脏,ChatGPT 照样封你。
常见误解:以为"节点多 = 线路多"。实际上很多机场把一台机器的 20 个端口包装成 20 个"节点"。这台机器被封,20 个节点同时消失。真实的冗余度看去重后的独立 IP 数,不看节点总数。

3. 线路类型:直连 / 中转 / 专线

这是决定价格和晚高峰体验的唯一变量。所有"高端""企业级"的宣传,最后都要落到这张表里的某一格。

类型路径晚高峰成本量级怎么验证
直连 客户端 → 境外 VPS(一跳出境) 差与国际出口拥堵同频,QoS 限速常见 最低,几元/月 mtr 看第一跳是否直接是境外 IP
中转 客户端 → 境内 BGP 入口 → 境外落地 中看中转段挤不挤,比直连稳 中,10–30 元/月 路由第一跳是境内 IDC IP(如 103.x / 43.x 机房段)
IEPL 运营商 MPLS 国际以太网专线,走内网 好晚高峰衰减 <10%,丢包≈0 高,25–60 元/月起 晚高峰衰减率、三网延迟差 <10ms
IPLC 点对点物理专线,不过公网交换中心 最好理论上零阻断零丢包 最高,通常 >25 元/月 同上,但独立带宽、抖动更小
CN2 GIA / 9929 / CMIN2 优质公网出口(不是专线) 中上比 163 骨干好,仍受公网影响 中 路由中出现 59.43.x.x(CN2)等特定 ASN
PlantUML diagram
图 3-1 活动图:机场选购决策流程(含硬性排除与验收分支)

唯一的量化判据:晚高峰衰减率

衰减率 = (平峰下载速度 − 晚高峰下载速度) / 平峰下载速度 × 100%

真专线        < 10%
专线+中转混合  10% – 15%
公网中转/直连  > 20%(常见 30%–60%)

测法:同一节点、同一测速服务器,下午 14:00 左右测一次,晚上 21:00–22:00 测三次取平均。只看晚高峰那一次的人,都会被白天的数据骗。

专有名词

IEPL / IPLC
International Ethernet Private Line / International Private Leased Circuit。都是运营商提供的跨境专线,流量在运营商内网传输、不经过公网国际出口。对终端用户而言体验差别很小,不值得为这两个字母的差价买单。
BGP 中转
机场在境内租用多线机房(电信/联通/移动 BGP),你的流量先到这台境内机器,再由它转发到境外。它本身仍走公网出境,只是把"最后一公里"优化了。
原生 IP(Native IP)
该 IP 的注册地与实际机房所在地一致,且未被大量代理用户使用过。流媒体和 AI 服务最看重这个。
广播 IP(Broadcast IP)
把别处的 IP 段宣告到本地机房。地理位置显示为某国,实际机房在另一国。便宜,但解锁能力差、风控分高。
超售
把 1Gbps 带宽卖给需要 10Gbps 的用户群。白天看不出来,晚高峰集体卡顿。专线也会超售——"专线"不等于"不卡"。
QoS 限速
运营商对特定流量(尤其是 UDP、未知加密流量)在高峰期降优先级。表现为"测速正常、实际卡顿"或"UDP 协议直接不可用"。

4. 选型决策流程

把上面的知识变成可执行的动作。整个流程只有四步,其中三步是"排除"而不是"挑选"。

4.1 硬性排除(不做这步,后面全是浪费)

信号为什么排除
年付折算 < ¥8/月,且标称"全专线"成本不成立。专线带宽是刚性支出,这个价格必然超售或靠拉新续命
提供"终身套餐""三年付""买一送三"把不确定性全部转嫁给你,是跑路前的标准动作
没有月付档,最低季付你失去了低成本退出的机会
官网只写"全解锁"三个字没有逐项标注(ChatGPT / Claude / Netflix / Disney+)等于没写
节点名里带 2x / 3x 倍率,但不标在套餐页真实流量被腰斩,比价失真
客服/工单在购买前就 24 小时不回买前都不回,买后不会回
搜索到的"官网"域名与官方公告不一致山寨站会盗你的账号和订阅 token

4.2 候选收集

从榜单站、社区、TG 群收集 3–5 个候选名字(只取名字,不取结论)。记录四件事:运营起始年份、最低月付价、标注的线路类型、标注的落地国家数。

4.3 短周期试用

买最短周期:月付,或按量小包(1–3 元体验包)。目的不是"用",是"测"。同时导入客户端,确认兼容 Clash / sing-box / Shadowrocket 三种订阅格式。

4.4 七天验收

跑完第 10 章的 SOP,填完第 7 章的评分卡。达标续费,不达标淘汰。整个决策周期控制在 7–10 天,成本控制在 30 元以内。

决策原则:先排除,再验证,最后才谈价格。价格只在"已经通过验收的候选之间"用作比较,不能作为进入候选的理由。

5. 生命周期与跑路

机场不是"好"或"坏",而是处在一个生命周期里的某个位置。绝大多数人在错误的时间点买入了错误的阶段。

PlantUML diagram
图 5-1 状态机图:机场服务的生命周期(解释为什么不能年付)

5.1 跑路的五个阶段

阶段时长表面现象你应该做什么
1. 开始降速1–4 周晚高峰变慢、视频缓冲增多、下载掉速开始记录衰减率,准备候选
2. 频繁维护2–4 周公告变多("线路优化""系统升级"),问题不解决停止续费,只保留月付
3. 客服失联1–2 周工单 3–5 天无人回,TG 群开始禁言切换到备用,导出订阅备份
4. 官网异常数天面板打不开、订阅更新失败、域名更换无公告视为已失效
5. 彻底消失—官网关闭、域名失效、社群解散止损:支付渠道申诉,改密码

5.2 五个高危信号

  1. 反常大促:突然"充 100 送 150""终身不限时"。这是最后一次圈钱。
  2. 群组全员禁言:阻止用户串联维权。
  3. 工单停摆:平时 1 小时响应,忽然 3 天没人。
  4. 核心节点大面积红灯超过一周:通常是欠费被上游停机。
  5. 强制安装"专属客户端":可能为了掩盖故障或植入后门。
铁律:首单只买月付。年付只给"运营满 3 年 + 你自己连续用了 2 个月 + 年付总额 ≤ ¥300"的机场。任何"终身"套餐,一律不碰。

专有名词

跑路
运营方停止服务并失联。触发原因通常是监管压力、资金链断裂、或一开始就是诈骗。
换壳
跑路后换品牌名、换域名重新开盘。老用户认不出来,还会再被割一次。所以要看"运营团队"而不是"品牌名"。
月抛
只打算做一两个月的机场。特征是极低价 + 无历史 + 无客服体系。
现金流死亡螺旋
低价年付吸金 → 用户增长放缓 → 每月刚性带宽支出照付 → 恶性超售 → 最后一波大促 → 关站。用年付款养月付成本,注定断裂。

6. 测评平台矩阵

这是本文最实用的一节。测评平台要分成两类用:工具型自己产生结论,榜单型只提供线索。

6.1 工具型:中立、可复现、结论可信

目的工具怎么用判定标准
国内三网延迟/丢包itdog.cn输入落地 IP,看全国 Ping / TCPing电信/联通/移动延迟差 <10ms;丢包 0%
全球视角延迟ping.pe / ping.sx输入 IP,看海外回程判断是否绕路(欧洲回程到亚洲=绕路)
路由 / 是否真中转NextTrace / mtr / BestTracenexttrace <ip> 或 mtr -rw <ip>第一跳是境内 IP = 中转;出现 59.43 = CN2
IP 归属 / ASNip-api.com、ipinfo.io、bgp.he.netcurl ip-api.com/json/<ip>hosting:true = 机房 IP;proxy:true = 已被标记
IP 纯净度 / 风控分ping0.cc、scamalytics.com、ipapi.is输入 IP 看 fraud score<30 较干净;30–70 谨慎;>70 别登账号
带宽Speedtest.net、fast.com、speed.cloudflare.com、LibreSpeed单线程 + 多线程各测一次晚高峰单线程 >50Mbps 可流畅 4K
流媒体解锁lmc999/RegionRestrictionCheckbash <(curl -L -s .../check.sh)看具体服务是否为 Yes(不看"全解锁")
快速解锁检测nkeor/MediaUnlockTestGo 单文件,跑完即出结果同上,速度快,适合批量
长期稳定性Uptime Kuma(自建)/ 自写探测脚本每 60s 探测一次,记录 7 天可用率 >99%,且断点集中在同一时段才算问题
真实节点数awk + sort(见 10.2)统计订阅里 server 去重数去重 IP 数 / 节点总数 < 0.3 = 严重虚标
为什么工具型可信:这些工具的数据你自己能复现。同样的 IP、同样的时段、同样的命令,结果应该一致。任何"只有站点自己能测出来"的数字,都不算证据。

6.2 榜单型:全部有返利,只能当线索

这类站点靠推广佣金生存,页面上的"优惠码"就是收入来源。它们不是骗子,但它们的"排名"是商业排序,不是质量排序。

正确用法:只从里面抄名字,然后回到 6.1 自己重测。看它有没有公开评分方法、有没有披露哪些是合作品牌、有没有写缺点——三条都没有的,连名字都别抄。

6.3 证据:同一家机场,三家给出三种定性

站点对同一家机场(光速云)的说法
jichangp.world"IEPL 全节点内网专线",晚高峰衰减 4.9%,六家第一,三网 28/22/32ms
ygjc.cc"BGP 中转",晚高峰 160+ Mbps,游戏延迟 50–80ms
jichangyyds.com"中转优化线路",是它家榜单里唯一的非专线

线路类型都能对不上,衰减率就更不可能对得上。这类数字的共同点是:你无法复现,也无法追责。

6.4 证据:价格本身自相矛盾

来源说法
多家榜单"IPLC 专线" 低至 ¥7–8/月(年付折算)
同一批站点的另一页"专线普遍在 ¥25/月以上,¥15 标榜『全专线』的基本可以直接排除"
成本侧1Gbps 高质量 IEPL/BGP 入口月租 1.5万–3.5万元

算一笔账:1000 个用户共享 500Mbps(月租约 1.2 万元),人均带宽成本就是 12 元/月,还没算落地机房、原生 IP、支付通道手续费(8%–15%)、防御和客服。¥7/月的"全专线"在数学上只能是超售或庞氏。

结论:判断一家机场,先看价格能不能算通,再看线路能不能测通。这两关过了,才轮得到看排名。

6.5 社区型信息源

渠道价值噪音
NodeSeek / HostLoc / V2EX技术讨论、故障复盘、真实用户吐槽中,有商家小号
Telegram 机场群 / 频道故障公告最快、跑路现场第一手高,水军与返利号密集
Reddit r/dumbclub 等海外视角、协议讨论低,但与国内线路脱节
GitHub Issues(客户端仓库)客户端兼容性问题、版本坑低,最可信

7. 量化评分卡

把"感觉还行"变成可比较的分数。权重按你的画像(日常办公 + 全球多国,不玩游戏)设定。

维度权重怎么测1 分3 分5 分
稳定性 / 线路质量35%7 天可用率 + 晚高峰衰减率衰减 >30%,可用率 <95%衰减 15–30%,可用率 97–99%衰减 <10%,可用率 >99%,丢包 0
晚高峰带宽20%21:00 单线程下载<20 Mbps20–50 Mbps>50 Mbps 且 4K 秒开
国家覆盖(真实)15%去重 IP 数 + 实际落地国家数<5 个真实 IP 或 <3 国5–15 个 IP,4–6 国>20 个 IP,8 国以上且各地区 ≥2 个
IP 纯净度 / 解锁15%风控分 + 逐项解锁实测ChatGPT 不可用、Netflix 仅自制剧AI 可用,流媒体部分AI 全通 + 主流流媒体原生解锁
价格 / 流量10%折合每 GB 成本(含倍率)>¥1.5/GB 或超低价的异常档¥0.3–1.5/GB合理价位且流量够用,不靠超售
运营年限 / 售后5%开业年份 + 工单响应时长<1 年或工单不回1–3 年,24h 内回>3 年且经历过多轮敏感期,1h 内回

7.1 计分

加权总分 = Σ(维度得分 × 权重) × 20        // 折算成百分制

示例:
稳定性 4×0.35 = 1.40
带宽   4×0.20 = 0.80
覆盖   3×0.15 = 0.45
纯净度 4×0.15 = 0.60
价格   4×0.10 = 0.40
售后   3×0.05 = 0.15
─────────────────────
合计 3.80 → 76 分
分数结论
≥ 80可以续费,可考虑季付(但仍不建议年付)
70–79可用,继续月付观察,同时保持备用
60–69只当备用,不作为主力
< 60淘汰,不再投入
为什么稳定性权重 35%:日常办公的真实痛点不是"峰值不够快",而是"开会到一半断了""Git push 反复失败"。抖动和丢包对交互式任务的影响,远大于峰值带宽。

8. 技术架构

理解机场侧怎么搭,才能理解它会在哪里省钱、在哪里出问题。

PlantUML diagram
图 8-1 部署图:机场的技术架构(订阅分发 / 入口 / 跨境 / 落地)

8.1 三个可以省钱的地方

  1. 订阅分发:用免费 CDN 隐藏源站,成本几乎为零。这里省钱不影响体验,但意味着订阅链接可能随时换域名。
  2. 入口:境内 BGP 入口按带宽月租,是最贵的一环。省这里 = 晚高峰挤。
  3. 落地:原生 IP 池比广播 IP 贵一个量级。省这里 = 解锁差、风控高。

所以一家机场的"性价比"本质上是在这三处省哪一处。宣传页不会告诉你,但测速和解锁检测会。

PlantUML diagram
图 8-2 组件图:客户端与订阅/节点之间的组件关系
PlantUML diagram
图 8-3 类图:机场业务的核心数据模型(用户 / 套餐 / 订阅 / 节点 / 落地 IP)

8.2 "全球多国"的真相

判断覆盖,别看宣传页的国家列表,看三个数:

指标怎么算及格线
真实节点数订阅里 server 去重后的数量≥ 15 个独立 IP
真实国家数每个去重 IP 查 ip-api.com 的 country,再去重≥ 6 国,且港日新美各自 ≥2 个 IP
冗余度去重 IP 数 ÷ 节点总数≥ 0.3(低于 0.3 说明大量端口复用)
真实案例(本机原订阅,已弃用):配置里写着 5 个"香港节点",实际全部指向同一台机器 74.52.13.18 的 5 个不同端口;查询该 IP 归属为香港葵涌、AS200772、hosting:true(机房 IP)。结果就是这台机器一被封,5 个节点同时消失。这就是"节点数虚标"的典型形态。

9. 协议怎么选

协议决定"能不能被识别",线路决定"快不快"。链路质量占七成,协议占三成——但顺序经常被搞反:天天换协议,却不看 mtr。

协议传输伪装方式抗主动探测抗丢包客户端覆盖
VLESS + RealityTCP借用真实大站的 TLS 证书最强一般几乎全部
Hysteria2QUIC / UDP模仿 HTTP/3强最强(Brutal 拥塞控制)sing-box / mihomo / Shadowrocket
TUIC v5QUIC / UDPQUIC中强较广
TrojanTCP + TLS真实 HTTPS强一般广
AnyTLSTCP + TLS流量填充打乱包长中高一般较窄(sing-box 1.12+)
Shadowsocks-2022TCP无伪装,仅加密中(可被熵值分析)一般最广
VMessTCP已建立指纹库弱一般广
关于"哪个协议成功率最高":2026 年一份约 700 万次连接探测的公开数据显示 VLESS-Reality 97.8%、ShadowTLS v3 99.4%、AnyTLS 99.3%、Hysteria2 99.6%。但这是客户端探测成功率,不是用户体验,也有样本偏差。真正的结论是:单一协议不够,要靠多协议容错。同一 IP 被封时,换协议没用,只能换 IP。

9.1 正确的组合

你的网络主力备用原因
电信 / 联通宽带VLESS + Reality(TCP 443)Hysteria2TCP 稳定优先,UDP 作补充
移动宽带 / 广电VLESS + Reality—移动对境外 UDP 的 QoS 最狠,QUIC 系经常直接不可用
晚高峰丢包严重Hysteria2(先确认不掐 UDP)RealityBrutal 不因丢包退让
老路由器 / 软路由低配SS-2022 或 VLESS(关 Mux)—CPU 开销最低

选机场时的实际判断:一家机场只提供 SS 或只提供 VMess,说明它没有跟进 2026 年的抗封锁基线;一家机场同时提供 Reality + Hysteria2 + 一个 TCP 老协议,说明它在做容错。后者才是日常办公该选的。

10. 7 天验收 SOP

目标:用 30 元以内、7 天时间,把"感觉"变成"数据"。以下命令在 macOS 终端可直接跑(Windows 用 WSL 或 PowerShell 对应改写)。

10.1 Day 0:准备

  1. 装好客户端(见第 11 章),导入订阅,先确认能通。
  2. 导出当前订阅配置到本地,作为基线备份:~/.config/clash/config.yaml(Clash Verge Rev 在应用内"导出")。
  3. 建一个记录表(表格或 Markdown),每天记四列:延迟中位数、丢包率、单线程下载、异常时间点。

10.2 Day 1:基线体检(30 分钟)

① 真实节点数——统计订阅里有多少个独立 IP:

python3 - <<'EOF'
import re, collections
cfg = open('/Users/brian/.config/clash/config.yaml').read()
ips = re.findall(r'server:\s*([0-9a-zA-Z\.\-]+)', cfg)
c = collections.Counter(ips)
print(f'节点总数 {len(ips)} 独立 IP {len(c)} 冗余度 {len(c)/max(len(ips),1):.2f}')
for ip, n in c.most_common(10):
    print(f'  {ip:<20} x{n}')
EOF

② 每个 IP 的归属与机房属性:

for ip in $(grep -oE 'server: [0-9a-zA-Z\.\-]+' ~/.config/clash/config.yaml \
            | awk '{print $2}' | sort -u); do
  echo -n "$ip  "
  curl -s "http://ip-api.com/json/$ip?fields=country,city,as,hosting,proxy"
  echo
  sleep 0.5   # 免费接口限速 45 次/分钟
done

③ TCP 可达性(判断是"被封"还是"能用"):

for ip in $(grep -oE 'server: [0-9a-zA-Z\.\-]+' ~/.config/clash/config.yaml \
            | awk '{print $2}' | sort -u); do
  nc -z -G 3 "$ip" 443 >/dev/null 2>&1 && echo "$ip OK" || echo "$ip FAIL"
done

10.3 Day 2–6:晚高峰连测

每天 21:00–22:00 做四件事,各 2 分钟:

  1. 延迟与丢包:ping -c 30 <落地IP>,记中位数与 P95。P95 > 中位数 2 倍 = 抖动大。
  2. 单线程下载:Speedtest 单线程,或 curl -o /dev/null -w "%{speed_download}\n" https://speed.cloudflare.com/__down?bytes=100000000。
  3. 解锁实测:bash <(curl -L -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh),只记账号真正在用的那几项。
  4. 真实体验:4K 视频拖动进度条,看缓冲圈;ChatGPT 发一条消息,看是否报地区限制。

10.4 挂机监控(可选,但很有用)

# 每 60 秒探一次,追加到日志;跑一晚就能看出断流时段
while true; do
  printf '%s ' "$(date +%H:%M)"
  curl -x http://127.0.0.1:7890 -o /dev/null -s \
       -w '%{http_code} %{time_total}\n' \
       https://www.gstatic.com/generate_204
  sleep 60
done | tee ~/airport-uptime.log

第二天统计:非 204 的行数 ÷ 总行数 = 失败率。可用率 = 1 − 失败率。低于 99% 的,日常办公会明显感知。

10.5 Day 7:结算

  1. 算晚高峰衰减率(平峰 vs 21:00 平均值)。
  2. 填第 7 章评分卡,算加权总分。
  3. 看一眼工单响应:Day 1 提一个技术问题,记录回复时长。
  4. 决定:≥80 续费月付;70–79 继续观察;<70 淘汰。
验收通过的最低标准(日常办公版):晚高峰衰减 <15%、丢包 <1%、单线程 >30Mbps、ChatGPT 可用、独立 IP ≥15、可用率 >99%、工单 24h 内回。七项里过六项,才算"能用"。

11. 客户端配置

11.1 三端选型

平台推荐说明
macOSClash Verge Rev(开源)/ Mihomo Party / Stash(付费)Verge 免费、支持 mihomo 内核、可视化规则与连接列表,最适合排查问题
iPhone / iPadShadowrocket(美区付费)支持 SS/VLESS-Reality/Hysteria2/TUIC 最全;Stash 也可,界面更现代
WindowsClash Verge Rev与 macOS 同源,配置可复用;v2rayN 作为备选
路由器OpenWrt + OpenClash / ShellCrash全屋代理用,注意 CPU 性能瓶颈

11.2 必须检查的四个设置

  1. 开启 TUN / 增强模式:否则部分 App(尤其是命令行、Electron 应用)不走代理。
  2. 关闭订阅侧的境外 DoH 依赖:见下方真实案例。
  3. 订阅自动更新设 24h:机场换 IP 是常态,不更新会连到已废弃节点。
  4. 开启规则分流:国内域名直连。全量走代理会让国内站在晚高峰更慢,还浪费流量。
真实案例:节点挂了,连国内网站也打不开
本机原订阅的 DNS 配置里有一段 nameserver-policy,把 +.google.com、+.github.com、+.openai.com 等域名的解析强制指向 https://dns.cloudflare.com/dns-query。节点可用时没问题;节点失效后,这条 DoH 请求本身出不去,这些域名就解析失败,表现为"明明没开网页代理,GitHub 却打不开"。
排查口诀:代理全挂时,先 unset http_proxy https_proxy all_proxy 直连测试。能通,就说明是代理链路的 DNS 在拖累你。

11.3 订阅安全

12. 组合方案与预算

"全球多国 + 最稳定"不是一家能给你的,是四层叠出来的。

层承担什么不要指望它预算
主力日常办公、AI、多国访问;承担 80% 流量不要指望它永不故障30–60 元/月
备用主力故障时兜底,能通就行不要指望它快5–20 元(按量,不过期)
解锁专用ChatGPT / Claude / 流媒体不要指望它便宜含在主力,或 +10–20 元
兜底敏感时期、全线失效时的最后手段不要指望它省心0–10 元/月(自建 VPS)

12.1 主力怎么挑(你的画像)

12.2 成本对照

方案月成本稳定性适合
单一低价直连机场¥5–10差只刷网页、能容忍断
单一中转机场¥15–30中预算有限、非工作依赖
主力专线 + 按量备用¥40–80好日常办公(推荐)
双专线互备 + 解锁场¥100–200很好工作强依赖、可报销
不要做的事:把全部预算押在一家年付上;为了"支持 10 台设备"买最贵档(日常办公 3 设备根本用不上);相信"全球 50 国"(大多数国家的节点只有 1 个 IP,且从不维护)。

13. 风险与合规

13.1 隐私

13.2 支付

13.3 合规

不同司法辖区对跨境代理服务的规定不同,部分地区对"未经许可的国际联网服务"有明确限制。本文只讨论技术选型与工程验证方法,不构成法律意见。使用前请自行确认所在地法规与单位合规要求。

13.4 止损清单(跑路后)

  1. 关闭自动续费,取消订阅。
  2. 截图官网、套餐页、付款记录、客服对话,作为申诉凭证。
  3. 立即切换到备用方案(这就是备用层的价值)。
  4. 修改与该机场使用相同密码的其他账号。
  5. 清理客户端里的旧订阅。

14. 实战操作手册

前面讲的是判断标准,这一章是照着做就能跑完的动作序列。按顺序执行,全程约 2 小时(不含 7 天观察)。

14.1 去哪里买:渠道、候选池、防钓鱼

这一节回答"具体从哪里找"。注意顺序:渠道只负责给你名字,不负责给你结论。所有渠道都有利益关系或噪音,判断仍然靠后面的体检。

四条渠道,各拿各的信息

渠道具体入口能拿到什么要注意什么
榜单 / 导航站
最省事
jichangclub.co、jichangp.world、yiyuan-jichang.org、jichangyyds.com、pjc.mom 机场名字、官网入口、标价、标称线路 全部有返利,排名是商业排序。只抄名字和官网,不抄结论和优惠码
社区
最真实
NodeSeek、HostLoc、V2EX、Reddit r/dumbclub 真实踩坑、跑路通报、故障复盘 有商家小号,优先看"用了半年以上"的发言
Telegram
最快
从机场官网进官方频道,不要在群里点别人发的链接 故障公告、跑路现场、换域名通知 返利号与水军密集,"内部推荐"基本都是 AFF
搜索引擎
最危险
关键词见下方 长尾小机场、新开机场 广告位大量假冒官网,只点自然结果并逐个核对域名

搜索关键词(直接复制)

机场推荐 IEPL 月付
机场 晚高峰 实测
机场 跑路 2026
Clash 订阅 机场 测评
IEPL 专线 机场 原生IP
机场 按量计费 不过期

搜出来的前几条通常就是榜单站,点进去抄名字即可。不要点带"推广/Sponsored"标记的链接——那才是假官网的高发区。

三步搭候选池

  1. 汇总:从 3 家不同榜单站各取前 10 名,去重后得到 20–30 个名字。同一批名字在多个站重复出现,说明它至少还在运营。
  2. 初筛(用第 4 章的硬性条件,5 分钟删掉 80%):
    • 运营 ≥ 2 年(看域名注册时间、TG 频道历史消息)
    • 有月付档,或 1–3 元体验包
    • 官网逐项写了线路类型(哪几个地区是专线)
    • 有工单系统,不是只有机器人
    • 价格算得通:真专线 ≥ ¥25/月、中转 ¥10–30、直连 < ¥10;¥7–8/月 标"IPLC 全专线"直接删
    筛完应剩 5–8 家。
  3. 实测:每家买最便宜的月付或体验包(总成本 30–50 元),按 14.7–14.8 跑一遍,最后只留 1 家主力 + 1 家备用,其余全部退订。

候选池(榜单高频出现,非推荐)

以下名字来自榜单站的公开页面,只用来说明"你大概会看到哪些",我没有逐家实测,不构成推荐:

星岛梦 光速云 二猫云 灵猫网络 飞猫云 微风网络 宇宙云 Firefly 无忧链接 跨界云 闪跃 SOGO云 唯兔云 U1S1 全球云 暮光加速 隐形人 大佬云

为什么不能直接给你一份"买这几家"的清单:
第一,这些名字的正确性我无法背书——同一家机场在三家榜单上分别被写成"IPLC 全专线(衰减 4.9%)""BGP 中转""中转优化线路"(见 6.3),连线路类型都对不上,我又怎么可能替它们背书。
第二,机场的生命周期以月计。今天写的清单,三个月后可能一半已跑路。
把上面这些名字当"搜索关键词"用,不要当"购买清单"用。

防钓鱼:六查

查什么怎么查不通过就放弃
域名与 TG 官方频道公告、老用户截图里的域名逐字比对域名多了字母、换了后缀(.com → .net → .xyz)
搜索位看搜索结果是否带"推广 / Sponsored"是广告位上的"官网"
收款方付款页面的商户名称与品牌名完全无关
域名年龄地址栏证书签发时间、whois 注册时间注册不到半年却在卖年付
价格逻辑用 6.4 节的成本算一遍算不通
客服下单前提一个技术工单24 小时无人回

下单七步

  1. 独立邮箱注册:不要用主邮箱,更不要用与银行/主账号相同的密码。
  2. 选最短周期:最便宜月付,或 1–3 元体验包。首单绝不年付。
  3. 付款:支付宝/微信(有申诉窗口)。不要充值余额,不要买"共享/合租"账号——token 共享会被限速或封禁,且没有售后。
  4. 立刻关自动扣款:支付宝 → 设置 → 支付设置 → 免密支付/自动扣款;微信同理。截图保存订单号。
  5. 存订阅链接:复制到本地加密文件,不要贴群、不要进 Git。
  6. 导入客户端:确认后台显示的流量和到期时间正常,异常说明链接格式不对。
  7. 马上体检:python3 airport-check.py -c ~/airport.yaml,先看冗余度和 TCP 可达,10 分钟就能淘汰一半。
首月预算参考:主力月付 30–60 元 + 备用按量 5–20 元 = 35–80 元。这笔钱的作用是"买数据",不是"买服务"——一个月后你手里会有一份能对比的实测记录,比任何榜单都值钱。

14.2 开工前准备

准备项具体要求为什么
预算30 元以内(一个月主力 + 一个按量备用)首单只买月付,不留余额
账号支付宝/微信可用;iOS 需一个美区 Apple ID支付方式决定跑路后的申诉可能
时间校准系统设置 → 日期与时间 → 打开「自动设置」TLS 握手对时间敏感,差几分钟就全连不上
记录文件一个本地文件,存订阅 URL + 每日测试数据订阅 URL 是凭证,别放云笔记明文
客户端目录确认能访问配置目录(见 14.7)体检脚本要读 config.yaml

14.3 macOS:安装 Clash Verge Rev

  1. 打开 github.com/clash-verge-rev/clash-verge-rev/releases,下对应安装包:Apple 芯片选 aarch64.dmg,Intel 选 x64.dmg。
  2. 拖进「应用程序」。首次打开若提示"无法验证开发者":系统设置 → 隐私与安全性 → 找到该应用 → 「仍要打开」。
  3. 首次启动后,先只开系统代理(设置 → 系统设置 → 系统代理),不要急着开 TUN。目的是先确认节点通不通。
  4. 确认能上网后,再开 TUN 模式(虚拟网卡)。首次开启会要求输入管理员密码安装服务——这是正常的,不开 TUN 的话,终端命令、Docker、部分 Electron 应用不走代理。
顺序很重要:先系统代理验证 → 再开 TUN。反过来做,出问题时分不清是节点坏了还是虚拟网卡配错了。

14.4 导入订阅

  1. 左侧「订阅」→ 右上「新建」→ 粘贴机场给的订阅 URL → 导入。
  2. 导入成功后卡片会显示到期时间与已用流量。若显示 0 或报错,说明链接格式不对(见下表)。
  3. 右键卡片 → 「更新」,之后建议把自动更新设为每 24 小时。
客户端该用哪种订阅链接
Clash Verge Rev / Mihomo PartyClash / mihomo 格式(YAML)
ShadowrocketV2Ray / base64 格式
sing-boxsing-box 格式(JSON)
机场只给一条链接先试 Clash Verge,多数能自动识别;不行就问客服要对应格式

14.5 iPhone:安装 Shadowrocket

  1. 需要一个美区 Apple ID(用礼品卡充值,别用来路不明的共享账号)。App Store 搜 Shadowrocket,约 $2.99。不要搜"小火箭官网",那类站点大量是假冒的。
  2. 打开 App → 右上角 + → 类型选 Subscribe → URL 粘贴订阅链接 → 右上「完成」。
  3. 回到首页,点刚导入的那条 → 选择延迟低的节点。
  4. 打开顶部开关,首次会提示「添加 VPN 配置」→ 允许,输密码/面容。
  5. 「设置 → 延迟测试 → 测试所有节点」,超过 300ms 的直接不用。
  6. 全局路由建议选「配置」(按规则分流),不要选「代理」(全量走代理会拖慢国内站)。

14.6 Windows:Clash Verge Rev

  1. 同一个项目下 .msi 安装包,装完勾选「TUN 模式」会安装系统服务(需管理员)。
  2. 配置复用:在 macOS 端「订阅 → 右键 → 导出」,拿到 YAML 后在 Windows 端「导入本地文件」;或直接填同一条订阅 URL。
  3. Windows 上额外检查:防火墙未拦截、系统时间同步、代理未被组策略覆盖。

14.7 第一步体检:跑脚本

脚本 airport-check.py 与本文件同目录,零依赖,macOS 自带 python3 直接跑。

先拿到 config.yaml(三选一):

# 只做本地统计,不联网(最快,先看是不是虚标)
python3 airport-check.py -c ~/airport.yaml --no-net

# 完整体检:查 ASN + TCP 可达性
python3 airport-check.py -c ~/airport.yaml

# 再加:经 Clash API 测延迟 + 经代理测下载速度
python3 airport-check.py -c ~/airport.yaml --clash-delay --speed

输出怎么读:

输出项含义判读
独立 IP 数 / 冗余度真实 IP 数 ÷ 节点总数<0.3 → 严重虚标,节点数不可信
同一 IP 被复用的节点哪台机器被拆成了多少"节点"最常见的是 ×5、×10
机房(hosting)是否是数据中心 IP全是"是" → 没有家宽/原生 IP,AI 与流媒体表现会差
TCP 可达IP:端口能否建连FAIL 多 → 节点被封或已下线
国家标注不一致节点名宣称 vs 实际落地出现即说明"多国"有注水
真实输出示例(某机场,已弃用):
节点总数 20 / 独立 IP 4 / 冗余度 0.20;
美国-1 实际落地在新加坡;TCP 可达 1/4。
一句话结论:20 个节点是 4 台机器的端口复用,其中 3 台已经不可达。

14.8 晚高峰实测(连续 5 天)

固定同一个节点、同一个测速源、同一时间段,才有可比性。

  1. 时间:20:30–22:30 之间任选 30 分钟,每天同一时段。
  2. 客户端里点该节点「延迟测试」,记下 ms。
  3. 终端测下载(下面的结果单位是 bytes/s,除以 125000 得到 Mbps):
curl -x http://127.0.0.1:7890 -o /dev/null -sS \
  -w "耗时 %{time_total}s  速度 %{speed_download} B/s\n" \
  "https://speed.cloudflare.com/__down?bytes=100000000"
  1. 同时 ping 落地 IP 30 次,记中位数与 P95:
ping -c 30 <落地IP> | tail -2

记录表模板(抄到本地文件里,每天一行):

日期节点延迟中位P95丢包单线程 Mbps4K异常时间
D1 21:00HK-0142ms55ms0%86秒开—
D2 21:10HK-01——————

14.9 解锁与 AI 实测

不要只看"全解锁"三个字,逐项点开:

  1. 批量检测:bash <(curl -L -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)
  2. Netflix:随便点开一部非自制剧(自制剧全球都能看,没有验证意义)。
  3. YouTube:播放 4K 视频 → 右键「统计信息」→ 看 Connection Speed 是否稳定在 20000 Kbps 以上。
  4. ChatGPT:网页登录并发一条消息。报 "not available in your country" = IP 不可用;能登录但反复人机验证 = IP 风险分高。
现象结论动作
Netflix 只有自制剧共享 IP 被识别为代理换"原生/流媒体"节点,或换机场
Disney+ 报地区不支持落地国家不对确认节点实际国家(用脚本查)
ChatGPT 能登但频繁验证IP 风险分高换节点;清 cookie;语言/时区与 IP 国家一致
Claude 直接拒绝IP 或被标记,或地区不支持换美/日原生节点重试

14.10 打分与决策

把 7 天数据填进第 7 章评分卡,按下面的口径落分:

晚高峰衰减率 = (D1 平峰速度 − 5 天晚高峰均速) / D1 平峰速度

< 10%  → 稳定性 5 分
10–15% → 4 分
15–30% → 3 分
> 30%  → 1–2 分

总分 ≥80 续费月付;70–79 继续月付观察;60–69 只当备用;<60 直接淘汰,别再投入时间。

14.11 换机场:无损迁移五步

  1. 先接新,不删旧:新订阅导入客户端,旧订阅保持不动。
  2. 并行观察 3 天:新节点设为主选,旧节点留在策略组里当备用。
  3. 导出备份:把能用的配置另存一份到本地(别只存在机场面板里)。
  4. 清理旧订阅:确认新机场稳定后再删。删之前把旧机场后台的订阅链接「重置」一次,防止 token 泄露。
  5. 删账号信息:如果用过同密码,改掉。

14.12 故障排查

PlantUML diagram
图 14-1 活动图:上不了网时的排查决策树(从"直连是否正常"开始二分)
症状最可能原因怎么确认怎么修
完全上不了网,直连也慢本地网络/宽带故障关代理测 curl https://www.baidu.com重启路由、检查 DNS
直连正常,开代理全挂节点被封 / 机场故障python3 airport-check.py 看 TCP 可达换节点;全挂则切备用
只有 GitHub / Google / OpenAI 打不开,别的正常DNS 被污染,或配置里把域名指向了境外 DoH关掉代理后逐域名测试;看配置 nameserver-policy改用国内 DoH(doh.pub);或删掉该策略
国内网站变慢、视频卡没有分流,全量走代理看客户端「连接」列表,国内域名是否走代理加 GEOIP,CN,DIRECT 与 GEOSITE,cn
能连,但只有 UDP 协议不通运营商对 UDP 做 QoS同节点切 TCP 协议再试主力用 VLESS-Reality(TCP)
全部节点 TLS 握手失败系统时间偏差看系统时间与标准时间差几分钟打开自动对时
开了 TUN 后 Docker / 虚拟机异常虚拟网卡接管了内网网段关 TUN 测试TUN 设置里排除 172.16.0.0/12、192.168.0.0/16
订阅更新失败但能上网订阅域名被墙 / 面板故障浏览器直接打开订阅 URL换机场给的备用订阅域名

14.13 每周 5 分钟运维

  1. 更新一次订阅,看节点是否有变化(大规模换 IP 是异常信号)。
  2. python3 airport-check.py --no-net,看独立 IP 数有没有骤降。
  3. 扫一眼机场公告 / TG 频道:有没有"线路维护""系统升级"连续出现。
  4. 检查支付自动扣款列表,确认没有莫名的续费授权。
  5. 备份配置:
mkdir -p ~/airport-backup
cp ~/airport.yaml ~/airport-backup/$(date +%F).yaml 2>/dev/null || \
  cp "$HOME/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/profiles/"*.yaml ~/airport-backup/
ls -lh ~/airport-backup | tail -5

15. 参数与指令速查

15.1 网络诊断命令

目的命令看什么
通不通ping -c 5 <IP>丢包率、平均延迟
抖动ping -c 30 <IP>max 与 avg 差距 >2 倍 = 抖
端口通不通nc -z -G 3 <IP> <端口>无输出即失败,OK 即通
路由与绕路mtr -rw -c 20 <IP>第 1 跳是境内 IP = 中转;出现 59.43 = CN2
可视化路由nexttrace <IP>逐跳 ASN 与地理
域名解析dig +short <域名> @223.5.5.5是否被污染(返回 0.0.0.0 或奇怪 IP)
IP 归属curl "http://ip-api.com/json/<IP>?fields=country,city,as,hosting,proxy"hosting:true=机房 IP,proxy:true=已被标记
本机监听端口lsof -nP -iTCP:7890 -sTCP:LISTEN确认代理软件在跑
当前代理环境echo $https_proxy排查"为什么命令行不走代理"
绕过代理直连env -u https_proxy -u http_proxy -u all_proxy curl ...定位是代理问题还是网络问题

15.2 curl 常用参数

参数作用典型用法
-x <url>走指定代理curl -x http://127.0.0.1:7890 ...
-o /dev/null丢弃响应体只测速不占磁盘
-w "..."输出自定义指标%{http_code} %{time_total} %{speed_download} %{remote_ip}
-sS静默但显示错误脚本里用,避免刷屏
-m <秒>总超时防止卡死
-I只取响应头测连通性最快
--resolve强制指定 IP绕过 DNS 验证证书
-L跟随跳转订阅链接、短链

15.3 测速与探测 URL

用途URL
连通性(返回 204)http://www.gstatic.com/generate_204
Cloudflare 下载https://speed.cloudflare.com/__down?bytes=100000000
Hetzner 100MBhttps://speed.hetzner.de/100MB.bin
Cachefly 100MBhttp://cachefly.cachefly.net/100mb.test

15.4 mihomo / Clash 配置项

配置项含义常用值 / 建议
mixed-portHTTP+SOCKS 混合端口7890
mode运行模式rule(日常)/ global(排障)/ direct(全部直连)
allow-lan允许局域网设备接入需要手机共享时开
tun.enable虚拟网卡全局接管终端/Docker 需要代理时开
dns.enhanced-modeDNS 模式fake-ip(快)/ redir-host(兼容好)
dns.nameserver默认 DNShttps://doh.pub/dns-query
dns.nameserver-policy按域名指定 DNS慎用境外 DoH,节点挂了会连带解析失败
proxy-groups type策略组类型select 手动 / url-test 自动选最快 / fallback 故障转移 / load-balance 负载均衡
url-test.interval自动测速间隔(秒)300
url-test.tolerance切换容差(ms)50,太小会频繁跳节点
rules 类型规则匹配方式DOMAIN / DOMAIN-SUFFIX / DOMAIN-KEYWORD / IP-CIDR / GEOIP / GEOSITE / MATCH
rule-providers规则集订阅用 geosite 或远程 rule-set,别手写几千条

最小可用分流规则(放在 rules: 里,从上往下匹配,命中的先赢):

rules:
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-KEYWORD,-cn,DIRECT
  - GEOIP,CN,DIRECT
  - GEOSITE,cn,DIRECT
  - GEOSITE,geolocation-!cn,PROXY
  - MATCH,PROXY

15.5 订阅格式对照

格式特征适用客户端
Clash / mihomo YAML明文,含 proxies: proxy-groups: rules:Clash Verge Rev、Mihomo Party、OpenClash
V2Ray / base64一串 base64,解出来是 vmess:// vless:// 等v2rayN、Shadowrocket、NekoBox
sing-box JSONJSON,含 outboundssing-box、Stash(部分)
订阅转换在链接后加 ?flag=clash 之类参数各机场参数不同,优先用机场自带的多格式链接
不要在第三方在线转换站转换订阅:转换站拿到的就是你的全部节点密钥和流量信息。用客户端自带的本地转换,或直接找机场要对应格式链接。

15.6 术语缩写

缩写全称一句话解释
GFWGreat Firewall网络审查与干扰系统
DPIDeep Packet Inspection深度包检测,靠流量特征识别代理
SNIServer Name IndicationTLS 握手里的明文域名,代理方可见
QUICQuick UDP Internet Connections基于 UDP 的传输协议,Hysteria2 的基础
BGPBorder Gateway Protocol多线机房用它做线路宣告与选路
ASNAutonomous System NumberIP 段归属的自治系统编号,用于识别机房
IEPL / IPLCInternational Ethernet / Private Leased Circuit跨境专线,不走公网出口
GIAGlobal Internet Access电信 CN2 的高端产品线
QoSQuality of Service运营商对特定流量降优先级
SLAService Level Agreement可用性承诺,机场宣传里的 99.9% 多无约束力
TTFBTime To First Byte首字节时间,交互体验的关键指标
P9595th Percentile95% 的样本低于该值,用来衡量抖动

16. 服务器与终端场景:自研客户端、订阅、proxy config

这一章专门解决一个越来越普遍的问题:机场只给一个"一键客户端",没有订阅链接。你在 macOS 上点两下能用,但要在云主机、CI、Docker、或者需要 http_proxy 的终端里用,就完全接不上。

16.1 先把问题说清楚:自研客户端到底改变了什么

传统机场卖的是标准协议的节点参数(server / port / 协议 / 密钥),客户端自己实现协议。自研客户端把这一层收走了:节点参数不再暴露给你,客户端内部直接连自己的服务端。

形态你拿到什么能不能给服务器用典型场景
标准订阅(Clash / sing-box / V2Ray)一条 URL,返回节点 + 规则能任何平台都能跑电脑、手机、服务器、路由器、CI
只给"节点参数"(手动添加)server / port / uuid能手工写入 xray / sing-box同上,但要自己拼配置
自研客户端 + 本地端口一个 App,内部起 7890/1080半能必须让客户端常驻,且只能在那台机器上个人电脑、手机
自研客户端 + 私有协议只有 App,没有参数也没有标准端口不能只能在支持的平台上用

机场为什么这么做:降低小白门槛、控制设备数、防止节点被提取共享、顺便做推广和统计。代价全部转给你:

一句话判据:能不能在终端里用 curl -x 连出去,是"这机场能不能上服务器"的唯一标准。做不到,它对你就是"仅限桌面"。

16.2 六条判据:这个机场能不能给服务器用

#判据怎么查结论
1官网/面板有订阅链接用户中心找 "Clash / sing-box / 通用订阅"有 → 首选
2支持手动添加节点客户端里找"手动配置 / 自定义节点 / 导入链接"有 → 可用
3自研客户端会开本地端口lsof -nP -iTCP -sTCP:LISTEN | grep -E "7890|7891|1080|1081"有 → 可在本机用 http_proxy
4协议是标准协议看是否写明 SS / VMess / VLESS / Trojan / Hysteria2 / TUIC写"私有加速协议" → 大概率绑客户端
5有限制多设备吗套餐页写"1 台设备 / 禁止共享"有 → 服务器场景违规,可能被封
6有路由 / 软路由教程官网帮助中心搜 "OpenWrt / 路由器"有 → 说明它保留了标准协议出口

怎么快速验证第 3 条(不用读文档)

# 1. 让客户端正常工作,然后看它监听在哪
lsof -nP -iTCP -sTCP:LISTEN | grep -Ei "clash|mihomo|sing|v2ray|xray|proxy"

# 2. 假设看到了 127.0.0.1:7890,直接测
curl -x http://127.0.0.1:7890 -I -m 10 https://www.google.com

# 3. 看到 200/301 就说明这台机器已经能用了,服务器上的做法同理
#    看到 Connection refused 说明它只在 App 内部转发,没有对外端口

16.3 标准方案:在 Linux 服务器上跑订阅

PlantUML diagram
图 16-1 部署图:服务器上把机场订阅变成 127.0.0.1:7890 的 http/socks 代理

顺序是固定的:订阅 → 内核进程 → 本地端口 → 环境变量 → 各工具。只要端口起来了,剩下的都是标准做法。

方案 A:mihomo(Clash.Meta)命令行 —— 最推荐

优点:直接吃 Clash 订阅,规则、分流、策略组全都能用,和桌面端同一套配置。

# 1. 下载(以 amd64 为例,arm 换 arm64)
cd /tmp
VER=v1.19.0   # 到 github.com/MetaCubeX/mihomo/releases 看最新版
wget https://github.com/MetaCubeX/mihomo/releases/download/${VER}/mihomo-linux-amd64-${VER}.gz
gunzip mihomo-linux-amd64-${VER}.gz
install -m 0755 mihomo-linux-amd64-${VER} /usr/local/bin/mihomo
mihomo -v

# 2. 放配置(把机场的 Clash 订阅下载成 config.yaml)
mkdir -p /etc/mihomo
curl -L "<你的 Clash 订阅 URL>" -o /etc/mihomo/config.yaml
grep -E "^(mixed-port|port|socks-port)" /etc/mihomo/config.yaml   # 确认端口,常见 7890

# 3. 前台试跑,看到 "Start Mixed(http+socks) server" 即成功
mihomo -d /etc/mihomo

# 4. 另开一个终端验证
curl -x http://127.0.0.1:7890 -I -m 10 https://www.google.com

跑通后做成开机自启(systemd):

cat >/etc/systemd/system/mihomo.service <<'EOF'
[Unit]
Description=mihomo proxy
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=always
RestartSec=3
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now mihomo
systemctl status mihomo --no-pager
journalctl -u mihomo -n 30 --no-pager

方案 B:sing-box

# 机场给的 sing-box 订阅(JSON)直接落地
curl -L "<你的 sing-box 订阅 URL>" -o /etc/sing-box/config.json
sing-box check -c /etc/sing-box/config.json     # 先校验
sing-box run  -c /etc/sing-box/config.json      # 前台跑
# inbound 里配置 type=http / socks,listen=127.0.0.1,listen_port=7890

方案 C:xray 单节点(只有节点参数时)

机场不给订阅、但给了 server/port/uuid 时,手写一份最简 VLESS 出站 + socks 入站即可。适合"就一个节点、不用分流"的服务器场景。

方案 D:不装客户端,走网关

如果这台 VM 和你家里/公司网络在同一个内网,最省事的做法是:在路由器或一台常开的机器上跑 mihomo(开 allow-lan),VM 里只需要:

export https_proxy=http://192.168.1.2:7890
export http_proxy=http://192.168.1.2:7890

好处是 VM 上什么都不用装;坏处是跨网段/公网时需要额外做端口与鉴权,不建议把代理端口直接暴露到公网。

16.4 proxy config:环境变量与各工具的配法

这是你提到的重点。绝大多数 Linux 工具只认环境变量或各自的配置文件,不认系统设置面板。

通用环境变量

# 临时生效(当前 shell)
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890     # 部分工具只认这个
export no_proxy="localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.169.254,.internal"

# 取消
unset http_proxy https_proxy all_proxy no_proxy
no_proxy 里的 169.254.169.254 不能漏:那是云厂商的元数据服务,走代理会导致实例信息、临时凭证全部拿不到,排查起来非常费时。内网段同理。

持久化三选一:

# 只对当前用户
echo 'export https_proxy=http://127.0.0.1:7890' >> ~/.bashrc
echo 'export http_proxy=http://127.0.0.1:7890'  >> ~/.bashrc

# 全局(Debian/Ubuntu 系)
echo 'https_proxy="http://127.0.0.1:7890"' >> /etc/environment

# 只给某个 systemd 服务(推荐,影响面最小)
systemctl edit myapp.service
# 在打开的编辑器里写:
# [Service]
# Environment="https_proxy=http://127.0.0.1:7890" "http_proxy=http://127.0.0.1:7890"

各工具分别怎么配

工具配法验证
curl / wget读环境变量;或 curl -x / wget -e use_proxy=yes -e https_proxy=...curl -I https://www.google.com
apt(Debian/Ubuntu)/etc/apt/apt.conf.d/95proxy 写 Acquire::http::Proxy "http://127.0.0.1:7890"; 与 Acquire::https::Proxy 同理apt update 能否走通
pippip config set global.proxy http://127.0.0.1:7890,或临时 pip install --proxy ...pip download requests -d /tmp
npmnpm config set proxy http://127.0.0.1:7890;npm config set https-proxy ...npm view react version
gitgit config --global http.proxy http://127.0.0.1:7890(https 同理);取消用 --unsetgit ls-remote https://github.com/git/git
docker pull用户级 ~/.docker/config.json 的 proxies.default;或 systemd drop-in 给 dockerd 配 HTTP_PROXYdocker pull hello-world
conda~/.condarc 里 proxy_servers: {http: ..., https: ...}conda search numpy
SSH~/.ssh/config 里 ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %pssh -v host

Docker 用户级配置示例(~/.docker/config.json):

{
  "proxies": {
    "default": {
      "httpProxy": "http://127.0.0.1:7890",
      "httpsProxy": "http://127.0.0.1:7890",
      "noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/8,172.16.0.0/12"
    }
  }
}
最常见的坑:docker pull 不读 shell 的 http_proxy。docker 命令把请求发给 dockerd,而 dockerd 是独立服务——要么给 dockerd 配 systemd 环境变量,要么配 ~/.docker/config.json,只 export 是没用的。

16.5 只有自研客户端时,还能做什么

  1. 先找端口(16.2 第 3 条)。如果客户端在本机起了 7890/1080,那这台机器就能用,把它当本地方案即可;但换到服务器上就得在服务器上再装一次(Linux 版通常没有)。
  2. 找它的临时配置。很多"自研客户端"其实是 mihomo / sing-box 的套壳,会把配置写到本地:
    • macOS:~/Library/Application Support/<App>/、~/Library/Containers/<App>/
    • Windows:%APPDATA%\<App>\
    • Linux:~/.config/<App>/
    如果能找到 config.yaml / config.json,里面的节点参数就是标准协议,可以直接搬到服务器。
  3. 找"导出 / 二维码 / 分享"入口。少数客户端允许导出节点链接,这是最省事的路径。
  4. 问客服要标准订阅。很多机场有订阅,只是默认不展示;直接问"有没有 Clash 或 sing-box 订阅链接,我要在 Linux 服务器上用"。
  5. 换机场。如果以上都不行,且你确实需要服务器场景,那这家不适合你——把"提供标准订阅"写进选型条件(第 4 章硬性排除项)。
不要做的事:逆向私有协议、破解客户端、把订阅 token 或节点参数发到公共群里"求转换"。前者违反服务条款且可能违法,后者等于把账号送人。

16.6 案例:小飞象自研客户端(实测拆解)

2026-10 实测的一家:只有自研客户端,官网/面板不给你订阅入口。结论是——配置能提取、能迁到 Linux 服务器,但搬之前必须改 4 个配置项,否则要么用不了,要么把服务器变成公网开放代理。

PlantUML diagram
图 16-2 活动图:自研客户端 → 服务器可用的判定路径

① 客户端结构(先搞清楚它是什么)

部分位置说明
App 本体/Applications/小飞象.appElectron 打包,主进程 + 渲染进程 + 网络服务
用户数据~/Library/Application Support/xiaofeixiang/vortex.json账号、密码、套餐、订阅 URL 全部明文
内核进程~/.config/com.vortex.helper/com.vortex.helpermihomo 分支(version.meta = true),不是私有协议
内核配置~/.config/com.vortex.helper/config.yaml标准 Clash 格式:20 节点 + 188 条规则
控制器127.0.0.1:39797/configs、/proxies 都能查,说明是开源内核套壳
日志~/.config/com.vortex.helper/log/端口冲突、订阅下载、域名扫描都记在这里

只要看到"内核目录里有 config.yaml + 控制器能访问",基本可以判定:它就是 mihomo/sing-box 的套壳,节点是标准协议,可以搬。

② 第一个坑:端口被占,表现为"proxy 不生效"

症状:客户端显示已连接,但浏览器和终端都上不了网。核心日志里只有这一行:

level=error msg="Start Mixed(http+socks) server error:
  listen tcp 127.0.0.1:7890: bind: address already in use"

原因:机器上还开着老的 ClashX,它占着 7890。新客户端绑不上端口,但 UI 不提示——于是"连上了、却没代理"。

# 定位:谁占着 7890
lsof -nP -iTCP:7890 -sTCP:LISTEN

# 处理:退出占用者(或把新客户端的代理端口改成 7897)
osascript -e 'tell application "ClashX Pro" to quit'
这类"连上了但不生效"的问题,永远先看端口归属,再看节点。顺序反了会在节点上浪费一小时。

③ 第二个坑:配置里这 4 项不能照搬

配置项客户端里的值搬到服务器应改为不改的后果
allow-lantruefalse
(若容器要连,改绑 bind-address)
监听 0.0.0.0:7890,云主机有公网 IP 就等于开了无鉴权开放代理
external-controller127.0.0.1:39797127.0.0.1:9090端口与业务冲突,或被误暴露
dns.nameserver-policy全部指向 dns.cloudflare.com删除,或换成 doh.pub节点一挂,google/github/openai 连域名都解析不了
tun.enablefalse保持 false服务器上开了会干扰内网与云厂商元数据服务

其中 allow-lan 最容易被忽略。实测该客户端在 macOS 上确实绑的是 *:7890(局域网可见);同样的配置放到云主机,就是对全网开放。

④ 节点能不能用:先体检,再搬

用第 10 章的脚本直接读它的 config.yaml:

python3 airport-check.py -c ~/.config/com.vortex.helper/config.yaml

实测输出(节选):

节点总数 20   独立 IP 3   冗余度 0.15
74.52.13.8     香港/Kwai Chun   AS200772  机房  OK
23.128.188.104 新加坡/Singapore  AS8143    否    OK
23.129.140.178 日本/Tokyo        AS8143    否    OK

国家标注与实际落地不一致:
  ✗ 香港-D5(宣称 香港)→ 实际 新加坡

但就"能不能搬"这个问题,答案是能:标准协议 + 标准配置,Linux 上跑 mihomo 直接吃。

⑤ 迁到服务器:只换节点,不动分组

目标机器(tx-vm)上原本已经有一套能跑的结构:

mihomo 监听 172.17.0.1:7890(只对 docker 网桥,公网不可达)
proxy-groups: SG(url-test) / JP(url-test) / OPENROUTER(fallback: JP → SG)
rules: DOMAIN-SUFFIX,openrouter.ai,OPENROUTER  +  MATCH,DIRECT
业务侧: ai-magic-backend 用 ENGINE_PROXY=http://host.docker.internal:7890

但 10 个节点全是旧的(IP 已失效,TCP 探测 FAIL)。做法是保留节点名、只替换 server 和 port——这样三个分组和分流规则一行都不用改:

# 1. 备份
cp /etc/mihomo/config.yaml /etc/mihomo/config.yaml.bak.$(date +%Y%m%d-%H%M%S)

# 2. 校验新配置(mihomo 自带 -t)
mihomo -t -d /etc/mihomo -f /tmp/config.new.yaml

# 3. 生效
cp /tmp/config.new.yaml /etc/mihomo/config.yaml
systemctl restart mihomo && systemctl is-active mihomo

# 4. 回滚(一条命令)
cp /etc/mihomo/config.yaml.bak.20261026-171650 /etc/mihomo/config.yaml
systemctl restart mihomo

实测结果:

检查项命令结果
配置语法mihomo -ttest is successful
SS 组延迟/proxies/SG/delay42 ms
JP 组延迟/proxies/JP/delay77 ms
业务域名curl -x ... openrouter.ai/api/v1/modelsHTTP 200,cf-ray: ...-NRT(东京落地)
容器内链路容器内 python 走 host.docker.internal:7890HTTP 200,791KB,0.70s
验证出口时的经典误判:在服务器上跑 curl -x http://127.0.0.1:7890 https://api.ipify.org,返回的是服务器自己的 IP,看着像"没生效"。实际是规则最后一条 MATCH,DIRECT,只有 openrouter.ai 走代理。
正确姿势:看目标域名的响应头 cf-ray(-NRT 东京、-SIN 新加坡),或在容器内测业务域名本身。

⑥ 这类客户端的三条固有风险

  1. 凭证明文落盘:vortex.json 里账号、密码、订阅 token 都是明文。任何能读你用户目录的程序都能拿走。
  2. IP/端口会轮换:实测几周内就从 23.128.188.93 → .104、23.129.140.130 → .178,端口全换。服务器上的配置会静默失效,业务报错但没人知道原因。
  3. 可上报的信息更多:设备指纹、使用时长、访问统计都在客户端手里,比一条订阅多得多。

⑦ 什么时候可以接受自研客户端

场景结论
只在自己电脑/手机上用可以体验省事,风险可控
需要给服务器/容器/CI 用,且能提取到标准 config勉强可以但要接受"IP 变了手动改"的维护成本
需要给服务器用,但找不到配置、只有私有协议放弃换一家提供标准订阅的
明确禁止多设备/共享放弃服务器场景属于违规使用,可能直接封号
这次的教训,反过来写进选型条件:买之前多问一句"有没有 Clash / sing-box 订阅链接,我要在 Linux 上用"。能给的机场,说明它没把用户锁死;只能给客户端又限制导出的,本质上是把迁移成本当成留存手段——跑路时你连备用方案都切不快。

16.7 因此,选机场时要多看两条

  1. 必须提供标准订阅(Clash / sing-box / V2Ray 任一)。只有自研客户端的,服务器场景直接排除。
  2. 节点必须是标准协议。宣传"私有协议 / 自研加速协议"的,基本等于"绑定客户端",服务器上用不了,也没法用第三方内核做分流。

这两条加进第 4 章的硬性排除,能省掉后面大量的返工。反过来,如果一个机场同时给"一键客户端 + 标准订阅",说明它对自己的技术栈有信心,也更值得试。

16.8 服务器侧自检清单

检查项命令期望
内核在跑systemctl is-active mihomoactive
端口在听ss -lntp | grep 7890看到 127.0.0.1:7890
代理可用curl -x http://127.0.0.1:7890 -I -m 10 https://www.google.comHTTP 200/301
环境变量生效env | grep -i proxy看到 7890
内网没被代理curl -I http://169.254.169.254/latest/meta-data/能返回(说明 no_proxy 生效)
日志无报错journalctl -u mihomo -n 50 --no-pager无 connection refused 刷屏

17. 速查表

17.1 三分钟判定

看到什么判断
「年付 ¥99,全专线,1000GB」直接排除成本不成立
「终身套餐」「三年付 5 折」直接排除跑路前置动作
「200+ 节点,全球 50 国」先验真去重后可能只有 10 个 IP
「全解锁,不支持退款」排除没逐项标注 = 没承诺
「IPLC 专线,¥19/月」存疑可能只有 1–2 个专线节点,其余中转
「只提供自研客户端,没有订阅链接」看场景服务器/终端用不了,见第 16 章
「运营 5 年,有工单,月付 ¥35」可进入试用

17.2 下单前 8 问

  1. 月付多少钱?流量多少?倍率多少?(三个数要能算出每 GB 成本)
  2. 哪些地区是专线,哪些是直连?(要求文字回答,不看图标)
  3. 订阅支持 Clash / sing-box / Shadowrocket 哪几种格式?
  4. 同时在线设备数上限?
  5. 工单在哪提?平均多久回?(现在提一个试试)
  6. 退款政策是什么?
  7. 节点用的什么协议?有没有 Reality / Hysteria2?
  8. 最近一次换域名是什么时候,怎么通知的?

17.3 三个数字定生死

晚高峰衰减率  < 15%      ← 影响"卡不卡"
独立 IP 数量  ≥ 15       ← 影响"会不会一起死"
7 天可用率    > 99%      ← 影响"能不能当主力"
最后一句:机场是消耗品,不是资产。正确的姿势是订阅当作水电费来付——按月付、随时可换、永远有备用。把省下的心力放在"怎么用网络把事做成",而不是"找到那家完美的机场"。